home *** CD-ROM | disk | FTP | other *** search
/ Developer CD Series 1998 November: Tool Chest / Dev.CD Nov 98 TC.toast / Sample Code / Networking / OT⁄PPP Control Strip Sample / OpenTptPPP.h next >
Encoding:
C/C++ Source or Header  |  1997-01-28  |  5.9 KB  |  257 lines  |  [TEXT/BOBO]

  1. /*
  2.     File:        OpenTptPPP.h
  3.  
  4.     Contains:    XTI-based PPP application programmer's interface.
  5.  
  6.     Copyright:    © 1996 by Apple Computer, Inc., all rights reserved.
  7.  
  8. */
  9.  
  10.  
  11. #ifndef __OPENTPTPPP__
  12. #define __OPENTPTPPP__
  13.  
  14. #ifndef REZ
  15.  
  16.     #ifndef __OPENTPTINTERNET__
  17.     #include <OpenTptInternet.h>
  18.     #endif
  19.  
  20. #endif
  21.  
  22.  
  23. /*******************************************************************************
  24. *    Constants
  25. ********************************************************************************
  26. /
  27.  
  28. //
  29. // OTCreateConfiguration name for PPP control endpoint
  30. //
  31.  
  32. #define kPPPControlName        "ppp"
  33.  
  34.  
  35. //
  36. // XTI Level
  37. //
  38.  
  39. #define COM_PPP                'PPPC'
  40.  
  41.  
  42. //
  43. // Options limits
  44. //
  45.  
  46. #define kPPPMaxIDLength                        255
  47. #define kPPPMaxPasswordLength                255
  48. #define kPPPMaxDTEAddressLength                127
  49. #define kPPPMaxCallInfoLength                255
  50.  
  51.  
  52. //
  53. // Various XTI option value constants
  54. //
  55.  
  56. #define kPPPStateInitial                    1
  57. #define kPPPStateClosed                        2
  58. #define kPPPStateClosing                    3
  59. #define kPPPStateOpening                    4
  60. #define kPPPStateOpened                        5
  61.  
  62. #define kPPPConnectionStatusIdle            1
  63. #define kPPPConnectionStatusConnecting        2
  64. #define kPPPConnectionStatusConnected        3
  65. #define kPPPConnectionStatusDisconnecting    4
  66.  
  67. #define kPPPMinMRU                            0
  68. #define kPPPMaxMRU                            4500
  69.  
  70. #define kIPCPTCPHdrCompressionDisabled        0
  71. #define kIPCPTCPHdrCompressionEnabled        1
  72.  
  73. #define kPPPCompressionDisabled                0x00000000
  74. #define kPPPProtoCompression                0x00000001
  75. #define kPPPAddrCompression                    0x00000002
  76.  
  77. #define kPPPNoOutAuthentication                0
  78. #define kPPPCHAPOrPAPOutAuthentication        1
  79.  
  80. #define kCCReminderTimerDisabled            0
  81. #define kCCIPIdleTimerDisabled                0
  82.  
  83. #define kPPPScriptTypeModem                    1
  84. #define kPPPScriptTypeConnect                2
  85. #define kPPPMaxScriptSize                    32000
  86.  
  87. #define kE164Address                        1
  88. #define kPhoneAddress                        1
  89. #define kCompoundPhoneAddress                2
  90. #define kX121Address                        3
  91.  
  92. #define kPPPConnectionStatusDialogsFlag        0x00000001
  93. #define kPPPConnectionRemindersFlag            0x00000002
  94. #define kPPPConnectionFlashingIconFlag        0x00000004
  95. #define kPPPOutPasswordDialogsFlag            0x00000008
  96. #define kPPPAllAlertsDisabledFlag            0x00000000
  97. #define kPPPAllAlertsEnabledFlag            0x0f
  98.  
  99. #define kPPPAsyncMapCharsNone                0
  100. #define kPPPAsyncMapCharsXOnXOff            0x000a0000
  101. #define kPPPAsyncMapCharsAll                0xffffffff
  102.  
  103.  
  104. #ifndef REZ
  105.  
  106.     //
  107.     // Option names
  108.     //
  109.  
  110.     enum
  111.     {
  112.         IPCP_OPT_GETREMOTEPROTOADDR        = (OTXTIName)0x7000,
  113.         IPCP_OPT_GETLOCALPROTOADDR        = (OTXTIName)0x7001,
  114.         IPCP_OPT_TCPHDRCOMPRESSION        = (OTXTIName)0x7002,
  115.         LCP_OPT_PPPCOMPRESSION            = (OTXTIName)0x7003,
  116.         LCP_OPT_MRU                        =
  117. (OTXTIName)0x7004,
  118.         LCP_OPT_RCACCMAP                =
  119. (OTXTIName)0x7005,
  120.         LCP_OPT_TXACCMAP                =
  121. (OTXTIName)0x7006,
  122.         SEC_OPT_OUTAUTHENTICATION        = (OTXTIName)0x7007,
  123.         SEC_OPT_ID                        =
  124. (OTXTIName)0x7008,
  125.         SEC_OPT_PASSWORD                =
  126. (OTXTIName)0x7009,
  127.         CC_OPT_REMINDERTIMER            = (OTXTIName)0x7010,
  128.         CC_OPT_IPIDLETIMER                =
  129. (OTXTIName)0x7011,
  130.         CC_OPT_DTEADDRESSTYPE            = (OTXTIName)0x7012,
  131.         CC_OPT_DTEADDRESS                =
  132. (OTXTIName)0x7013,
  133.         CC_OPT_CALLINFO                    =
  134. (OTXTIName)0x7014,
  135.         CC_OPT_GETMISCINFO                =
  136. (OTXTIName)0x7015,
  137.         PPP_OPT_GETCURRENTSTATE            = (OTXTIName)0x7016
  138.     };
  139.  
  140.  
  141.     //
  142.     // Endpoint events
  143.     //
  144.  
  145.     enum
  146.     {
  147.         kPPPEvent                        =
  148. (OTEventCode) kPROTOCOLEVENT | 0xf0000,
  149.         kPPPConnectCompleteEvent        = (OTEventCode)
  150. kPPPEvent+1,
  151.         kPPPSetScriptCompleteEvent        = (OTEventCode)
  152. kPPPEvent+2,
  153.         kPPPDisconnectCompleteEvent        = (OTEventCode)
  154. kPPPEvent+3,
  155.         kPPPDisconnectEvent                =
  156. (OTEventCode) kPPPEvent+4,
  157.         kPPPIPCPUpEvent                    =
  158. (OTEventCode) kPPPEvent+5,
  159.         kPPPIPCPDownEvent                =
  160. (OTEventCode) kPPPEvent+6,
  161.         kPPPLCPUpEvent                    =
  162. (OTEventCode) kPPPEvent+7,
  163.         kPPPLCPDownEvent                =
  164. (OTEventCode) kPPPEvent+8,
  165.         kPPPLowerLayerUpEvent            = (OTEventCode)
  166. kPPPEvent+9,
  167.         kPPPLowerLayerDownEvent            = (OTEventCode)
  168. kPPPEvent+10,
  169.         kPPPAuthenticationStartedEvent    = (OTEventCode) kPPPEvent+11,
  170.         kPPPAuthenticationFinishedEvent    = (OTEventCode) kPPPEvent+12,
  171.         kPPPDCEInitStartedEvent            = (OTEventCode)
  172. kPPPEvent+13,
  173.         kPPPDCEInitFinishedEvent        = (OTEventCode)
  174. kPPPEvent+14,
  175.         kPPPDCECallStartedEvent            = (OTEventCode)
  176. kPPPEvent+15,
  177.         kPPPDCECallFinishedEvent        = (OTEventCode)
  178. kPPPEvent+16
  179.     };
  180.  
  181.  
  182.     /*******************************************************************************
  183.     *    IOCTL constants
  184. for I_OTConnect, I_OTDisconnect and I_OTScript
  185.     *    are defined in OpenTransport.h
  186.     *******************************************************************************
  187. */
  188.  
  189.  
  190.     /******************************************************************************
  191. *
  192.     *    PPPMRULimits
  193.     *******************************************************************************
  194. */
  195.  
  196.     typedef struct
  197.     {
  198.         UInt32    mruSize;            // proposed or actual
  199.         UInt32    upperMRULimit;
  200.         UInt32    lowerMRULimit;
  201.     }
  202.     PPPMRULimits;
  203.  
  204.  
  205.     /******************************************************************************
  206. *
  207.     *    CCMiscInfo
  208.     *******************************************************************************
  209. */
  210.  
  211.     typedef struct
  212.     {
  213.         UInt32    connectionStatus;
  214.         UInt32    connectionTimeElapsed;
  215.         UInt32    connectionTimeRemaining;
  216.         UInt32    bytesTransmitted;
  217.         UInt32    bytesReceived;
  218.         UInt32    reserved;
  219.     }
  220.     CCMiscInfo;
  221.  
  222.  
  223. #endif    /* #ifndef REZ */
  224.  
  225.  
  226. /*******************************************************************************
  227. *    Gestalt Selectors for Open Transport-based Remote Access/PPP
  228. *
  229. *    Note: possible values for the version "stage" byte are:
  230. *    development = 0x20, alpha = 0x40, beta = 0x60, final & release = 0x80
  231. ********************************************************************************
  232. /
  233.  
  234. //
  235. // Response bit positions for gestaltOpenTptRemoteAccess.
  236. //
  237.  
  238. #define kRAProductClientOnly                    2
  239. #define kRAProductOnePortServer                    3
  240. #define kRAProductManyPortServer                4
  241.  
  242. #define gestaltOpenTptRemoteAccessPresent        0
  243. #define gestaltOpenTptRemoteAccessLoaded        1
  244. #define gestaltOpenTptRemoteAccessClientOnly    kRAProductClientOnly
  245. #define gestaltOpenTptRemoteAccessPServer        kRAProductOnePortServer
  246. #define gestaltOpenTptRemoteAccessMPServer
  247.     kRAProductManyPortServer
  248. #define gestaltOpenTptPPPPresent                5
  249. #define gestaltOpenTptARAPPresent                6
  250.  
  251. #define gestaltOpenTptRemoteAccess                'otra'
  252. #define gestaltOpenTptRemoteAccessVersion        'otrv'
  253.  
  254.  
  255. #endif    /* __OPENTPTPPP__ */
  256.  
  257.